//
//  SettingTableViewController.m
//  JXW_UnionSDK
//
//  Created by 彭月辉 on 2022/6/27.
//

#import "SettingTableViewController.h"
#import <ADSEFramework/ADSELinkManager.h>
#import <SVProgressHUD/SVProgressHUD.h>

@interface SettingTableViewController (){

    NSArray *menuList;
}

@end

@implementation SettingTableViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];//获取app版本信息
    NSString *appname = [infoDictionary objectForKey:@"CFBundleDisplayName"];
    NSString *appversion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
   
    self.title = [NSString stringWithFormat:@"%@_v%@",appname,appversion];
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(recordStartNotification) name:@"RecordStartNotification" object:nil];

}

//- (void)viewWillAppear:(BOOL)animated{
//    [super viewWillAppear:animated];
//    [self refreshdMenu];
//}
//
//- (void)viewWillDisappear:(BOOL)animated{
//    [super viewWillDisappear:animated];
//    if([SVProgressHUD isVisible]){
//        [SVProgressHUD dismiss];
//    }
//}
//
//- (void)refreshdMenu{
//    
//    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//        [[ADSELinkManager shareInstance] getMenuList:^(NSInteger code, NSArray * _Nullable list) {
//            dispatch_async(dispatch_get_main_queue(), ^{
//                if(code == LINK_ERR_OK){
//                    menuList = list;
//                }
//                [self.tableView reloadData];
//            });
//        } cache:NO];
//    });
//
//}
//
//- (void)recordStartNotification{
//    [self.navigationController popViewControllerAnimated:YES];
//}
//
//#pragma mark - Table view data source
//
//- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
//    return [menuList count];
//}
//
//
//- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
//    if(cell == nil){
//        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
//    }
//    cell.textLabel.text = menuList[indexPath.row][@"name"];
//    return cell;
//}
//
//- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//    
//    [tableView deselectRowAtIndexPath:indexPath animated:YES];
//    
//    NSDictionary *dic = menuList[indexPath.row];
//    int cmd = [dic[@"cmd"] intValue];
//    NSArray *options = [dic[@"options"] valueForKey:@"option"];
//    NSArray *actives = [dic[@"options"] valueForKey:@"active"];
//
//    if([options count] > 0){
//        [self showItems:options actives:actives title:dic[@"name"] selectedBlock:^(int index) {
//            [[ADSELinkManager shareInstance] setMenuState:cmd status:options[index] callback:^(NSInteger code) {
//                if(code == LINK_ERR_OK){
//                    /*
//                    [SVProgressHUD show];
//                    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//                        [[ADSELinkManager shareInstance] getMenuList:^(NSInteger code, NSArray * _Nullable list) {
//                            dispatch_async(dispatch_get_main_queue(), ^{
//                                [SVProgressHUD dismiss];
//                                if(code == LINK_ERR_OK){
//                                    menuList = list;
//                                }
//                                [self.tableView reloadData];
//                            });
//                        } cache:NO];
//                        
//                    });
//                     */
//                    [self refreshdMenu];
//                    [self showInfo:@"提示" mesage:@"设置成功" callback:nil];
//                    
//                    if(self.settingBlock){
//                        self.settingBlock(cmd,options[index]);
//                    }
//
//                }
//                else{
//                    NSLog(@"设置失败");
//                    [self showInfo:@"提示" mesage:@"设置失败" callback:nil];
//                }
//            }];
//        }];
//    }
//    else{
//        [self commonMenuSetting:cmd];
//    }
//    
//
//}
//
//- (void)commonMenuSetting:(NSInteger)cmd{
//    
//    switch (cmd) {
//        case 4011:
//        {
//            __block NSString *spaceInfo;
////            ADSESpaceItem *item = [[ADSELinkManager shareInstance] queryStorageSpace:EMMC];
//            [[ADSELinkManager shareInstance] queryStorageSpace:LINK_STORAGE_INTERNAL callback:^(NSInteger code, ADSESpaceItem * _Nullable space) {
//                if(code == LINK_ERR_OK){
//                    NSString *free = [self spaceConvert:[space.free integerValue]];
//                    NSString *total = [self spaceConvert:[space.total integerValue]];
//                    
//                    spaceInfo = [NSString stringWithFormat:@"%@/%@", free,total];
//                    [self showInfo:@"内部存储可用空间" mesage:free callback:nil];
//                }
//                else{
//                    [self showInfo:@"请求失败，请重试" mesage:spaceInfo callback:nil];
//                }
//                
//            }];
//        }
//            break;
//            
//        case 4012:
//        {
//            __block NSString *spaceInfo;
//            
//            [[ADSELinkManager shareInstance] queryStorageSpace:LINK_STORAGE_EXTERNAL callback:^(NSInteger code, ADSESpaceItem * _Nullable space) {
//                if(code == LINK_ERR_OK){
//                    NSString *free = [self spaceConvert:[space.free integerValue]];
//                    NSString *total = [self spaceConvert:[space.total integerValue]];
//                    
//                    spaceInfo = [NSString stringWithFormat:@"%@/%@", free,total];
//                    [self showInfo:@"TF卡可用空间" mesage:free callback:nil];
//                }
//                else{
//                    [self showInfo:@"请求失败，请重试" mesage:spaceInfo callback:nil];
//                }
//            }];
//
//        }
//            break;
//            
//        case 4013:
//        {
//            [SVProgressHUD show];
//            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//                [[ADSELinkManager shareInstance] formatStorage:LINK_STORAGE_INTERNAL callback:^(NSInteger code) {
//                    dispatch_async(dispatch_get_main_queue(), ^{
//                        [SVProgressHUD dismiss];
//                        if(code == LINK_ERR_OK){
//                            [self showInfo:@"提示" mesage:@"格式化eMMC成功" callback:nil];
//                        }
//                        else{
//                            [self showInfo:@"提示" mesage:@"格式化eMMC失败" callback:nil];
//                        }
//                    });
//                }];
//            });
//
//        }
//            break;
//            
//        case 4014:
//        {
//            [SVProgressHUD show];
//            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//                [[ADSELinkManager shareInstance] getExternalStorageState:^(NSInteger code, LinkStorageState state) {
//                    if(code == LINK_ERR_OK){
//                        if(state == LINK_CARD_OK){
//                            [[ADSELinkManager shareInstance] formatStorage:LINK_STORAGE_EXTERNAL callback:^(NSInteger code) {
//                                dispatch_async(dispatch_get_main_queue(), ^{
//                                    [SVProgressHUD dismiss];
//                                    if(code == LINK_ERR_OK){
//                                        [self showInfo:@"提示" mesage:@"格式化TF卡成功" callback:nil];
//                                    }
//                                    else{
//                                        [self showInfo:@"提示" mesage:@"格式化TF卡失败" callback:nil];
//                                    }
//                                });
//                            }];
//                        }
//                        else{
//                            //卡异常提示
//                            dispatch_async(dispatch_get_main_queue(), ^{
//                                [SVProgressHUD dismiss];
//
//                                if (state == LINK_CARD_REMOVED){
//                                    [self showInfo:@"提示" mesage:@"未插入TF卡" callback:nil];
//                                }
//                                else if (state == LINK_CARD_BAD){
//                                    [self showInfo:@"提示" mesage:@"坏卡" callback:nil];
//                                }
//                                else if (state == LINK_CARD_ERROR){
//                                    [self showInfo:@"提示" mesage:@"卡错误" callback:nil];
//                                }
//                                else{
//                                    [self showInfo:@"提示" mesage:@"TF卡状态异常" callback:nil];
//                                }
//                            });
//                        }
//                        
//                    }
//                    else{
//                        dispatch_async(dispatch_get_main_queue(), ^{
//                            [SVProgressHUD dismiss];
//                            [self showInfo:@"提示" mesage:@"请求失败" callback:nil];
//                        });
//                    }
//                }];
//               
//            });
//
//        }
//            break;
//
//        case 4015:
//        {
//            [self showModifyAlert:@"修改WiFi名称"
//                      placeholder:@"不支持特殊字符,最多支持15个字符"
//                            block:^(NSString *newname) {
//                /*
//                newname = [newname stringByReplacingOccurrencesOfString:@" " withString:@""];
//                if(newname.length > 15){
//                    [self showInfo:@"提示" mesage:@"名字过长，请重试" callback:nil];
//                    return;
//                }
//                if(newname.length == 0){
//                    [self showInfo:@"提示" mesage:@"名字不能为空格或者空" callback:nil];
//                    return;
//                }
//                */
//                if(![self isAvailableName:newname]){
//                    [self showInfo:@"提示" mesage:@"WiFi命名不符合规则" callback:nil];
//                    return;
//                }
//
//                if(newname.length > 0){
//                    [SVProgressHUD show];
//                    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//                        
//                        [[ADSELinkManager shareInstance] setWiFiSSID:newname callback:^(NSInteger code) {
//                            dispatch_async(dispatch_get_main_queue(), ^{
//                                [SVProgressHUD dismiss];
//
//                                if(code == LINK_ERR_OK){
//                                    [self showInfo:@"提示" mesage:@"修改WiFi名称成功,请进行重新连接" callback:^{
//                                        [[ADSELinkManager shareInstance] disconnect];
//                                        [self.navigationController popToRootViewControllerAnimated:YES];
//                                    }];
//                                }
//                                else{
//                                    [self showInfo:@"提示" mesage:@"修改WiFi名称失败" callback:nil];
//                                }
//                            });
//                        }];
//                    });
//                }
//            }];
//
//        }
//            break;
//
//        case 4016:
//        {
//            __block NSString *password;
//            [[ADSELinkManager shareInstance] getWiFiPassword:^(NSInteger code, NSString * _Nullable psd) {
//                if(code == LINK_ERR_OK){
//                    password = psd;
//                }else{
//                    NSLog(@"获取WiFi密码失败");
//                }
//            }];
//            
//            [self showModifyAlert:@"修改WiFi密码"
//                      placeholder:password
//                            block:^(NSString *newpsd) {
////                newpsd = [newpsd stringByReplacingOccurrencesOfString:@" " withString:@""];
//                if(![self isAvailablePassword:newpsd]){
//                    [self showInfo:@"提示" mesage:@"密码过于简单，请重新设置8~20个字符或数字的组合" callback:nil];
//                    return;
//                }
////                if(newpsd.length < 8){
////                    [self showInfo:@"提示" mesage:@"密码过于简单，请重新设置最少8个字符或数字的组合" callback:nil];
////                    return;
////                }
//                if(newpsd){
//                    [SVProgressHUD show];
//                    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//                        [[ADSELinkManager shareInstance] setWiFiPassword:newpsd callback:^(NSInteger code) {
//                            dispatch_async(dispatch_get_main_queue(), ^{
//                                [SVProgressHUD dismiss];
//                                if(code == LINK_ERR_OK){
//                                    [self showInfo:@"提示" mesage:@"修改WiFi密码成功,请进行重新连接" callback:^{
//                                        [[ADSELinkManager shareInstance] disconnect];
//                                        [self.navigationController popToRootViewControllerAnimated:YES];
//                                    }];
//                                    
//                                }
//                                else{
//                                    [self showInfo:@"提示" mesage:@"修改WiFi密码失败" callback:nil];
//                                }
//                            });
//                        }];
//                    });
//                }
//            }];
//        }
//            break;
//            
//        case 4017:
//        {
//            NSString *vincode;
//            [[ADSELinkManager shareInstance] getVinCode:^(NSInteger code, NSString * _Nullable vin) {
//                if(code == LINK_ERR_OK){
//                    vin = vin;
//                    NSLog(@"vincode --> %@",vin);
//                }else{
//                    NSLog(@"获取vincode失败");
//                }
//            }];
//
//            [self showModifyAlert:@"修改车辆识别码"
//                      placeholder:vincode
//                            block:^(NSString *newvin) {
//                if(newvin.length > 0){
//                    [SVProgressHUD show];
//                    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//                        [[ADSELinkManager shareInstance] setVinCode:newvin callback:^(NSInteger code) {
//                            dispatch_async(dispatch_get_main_queue(), ^{
//                                [SVProgressHUD dismiss];
//                                if(code == LINK_ERR_OK){
//                                    [self showInfo:@"提示" mesage:@"修改车辆识别码成功" callback:nil];
//                                    NSLog(@"修改车辆识别码成功");
//                                }
//                                else{
//                                    [self showInfo:@"提示" mesage:@"修改车辆识别码失败" callback:nil];
//                                    NSLog(@"修改车辆识别码失败,error:%ld",code);
//                                }
//                            });
//                        }];
//                    });
//                }
//            }];
//
//            
//        }
//            break;
//
//            
//        case 4018:
//        {
//            [[ADSELinkManager shareInstance] systemReset:^(NSInteger code) {
//                if(code == LINK_ERR_OK){
//                    [self refreshdMenu];
//                    [self showInfo:@"提示" mesage:@"系统重置成功" callback:^{
//                        
//                    }];
//                    NSLog(@"系统重置成功");
//                }
//                else{
//                    [self showInfo:@"提示" mesage:@"系统重置失败" callback:nil];
//                }
//            }];
//            
//        }
//            break;
//
//
//        case 4019:
//        {
//           [[ADSELinkManager shareInstance] getSystemVersion:^(NSInteger code, NSString * _Nullable version) {
//               if(code == LINK_ERR_OK){
//                   [self showInfo:@"系统版本信息" mesage:version callback:nil];
//                   NSLog(@"系统版本信息 --> %@",version);
//               }
//               else{
//                   NSLog(@"请求失败 --> error:%ld",code);
//                   [self showInfo:@"提示" mesage:@"获取系统版本信息失败" callback:nil];
//               }
//            }];
//            
//        }
//            break;
//            
//        default:
//            break;
//    }
//}
//
//- (NSString *)spaceConvert:(NSInteger)byteLength{
//    
//    NSByteCountFormatter *format = [[NSByteCountFormatter alloc] init];
//    
//    //以MB输出
//    format.allowedUnits = NSByteCountFormatterUseGB;
//    
//    //1024字节为1KB
//    format.countStyle = NSByteCountFormatterCountStyleBinary;
//    
//    //1000字节为1KB
////    format.countStyle = NSByteCountFormatterCountStyleDecimal;
//    
//    // 输出结果显示单位
//    format.includesUnit =  YES;
//    
//    // 输出结果显示数据
//    format.includesCount = YES;
//    
//    //是否显示完整的字节
//    format.includesActualByteCount = NO;
//    
//    NSString *str = [format stringFromByteCount:byteLength];
//    
//    return str;
//}
//    
//- (NSString *)menuItemLocalized:(NSString *)string{
//    NSString *localizedString = string;
//    if([string isEqualToString:@"1T1F"]){
//        localizedString = @"前路(满屏)";
//
//    }
//    else if ([string isEqualToString:@"2T2F"]){
//        localizedString = @"后路(满屏)";
//
//    }
//    
//    else if ([string isEqualToString:@"1T1B2S"]){
//        localizedString = @"前大后小";
//    }
//
//    else if ([string isEqualToString:@"1T1S2B"]){
//        localizedString = @"前小后大";
//    }
//    
//    else if ([string isEqualToString:@"OFF"]){
//        localizedString = @"关闭";
//    }
//
//    else if ([string isEqualToString:@"ON"]){
//        localizedString = @"打开";
//    }
//    
//    return localizedString;
//}
//   
//- (BOOL)isAvailableName:(NSString *)name{
//    
////    帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$
////    密码(以字母开头，长度在6~18之间，只能包含字母、数字和下划线)：^[a-zA-Z]\w{5,17}$
////    强密码(必须包含大小写字母和数字的组合，不能使用特殊字符，长度在8-10之间)：^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
//    
//    NSString *regex = @"[a-zA-Z0-9\u4e00-\u9fa5_]{2,15}$";
//    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
//    if(![pred evaluateWithObject:name]){
//        return NO;
//    }
//    return YES;
//    
//}
//
//- (BOOL)isAvailablePassword:(NSString *)password{
//        
//    NSString *regex = @"[a-zA-Z0-9]{8,20}$";
//    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
//    if(![pred evaluateWithObject:password]){
//        return NO;
//    }
//    return YES;
//    
//}
//    
//- (void)showInfo:(NSString *)title mesage:(NSString *)info callback:(void(^)(void))block{
//        
//    UIAlertController *alert = [UIAlertController alertControllerWithTitle:title
//                                                                   message:info
//                                                            preferredStyle:UIAlertControllerStyleAlert];
//    
//    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"确定"
//                                                        style:UIAlertActionStyleCancel
//                                                      handler:^(UIAlertAction * _Nonnull action) {
//        if(block){
//            block();
//        }
//    }];
//    
//    [alert addAction:cancelAction];
//    
//    [self presentViewController:alert animated:YES completion:nil];
//
//}
//
//
//- (void)showModifyAlert:(NSString *)title placeholder:(NSString *)ph block:(void (^)(NSString *))block{
//    
//    UIAlertController *alert = [UIAlertController alertControllerWithTitle:title
//                                                                   message:nil
//                                                            preferredStyle:UIAlertControllerStyleAlert];
//
//    [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
//            
//            textField.placeholder = ph;
//    }];
//    
//    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消"
//                                                        style:UIAlertActionStyleCancel
//                                                      handler:^(UIAlertAction * _Nonnull action) {
//        
//    }];
//    
//    [alert addAction:cancelAction];
//    
//    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定"
//                                                        style:UIAlertActionStyleDefault
//                                                      handler:^(UIAlertAction * _Nonnull action) {
//        UITextField *textfiled = alert.textFields.firstObject;
//        block(textfiled.text);
//    }];
//    
//    [alert addAction:okAction];
//    
//    [self presentViewController:alert animated:YES completion:nil];
//
//}
//
//- (void)showItems:(NSArray *)items actives:(NSArray *)actives title:(NSString *)ti selectedBlock:(void (^)(int))block{
//    UIAlertController *alert = [UIAlertController alertControllerWithTitle:ti
//                                                                   message:nil
//                                                            preferredStyle:UIAlertControllerStyleActionSheet];
//
//    for(int i = 0;i<[items count];i++){
//        UIAlertAction *action = [UIAlertAction actionWithTitle:[self menuItemLocalized:items[i]]
//                                                            style:UIAlertActionStyleDefault
//                                                          handler:^(UIAlertAction * _Nonnull action) {
//            block(i);
//        }];
//        if([actives[i] intValue] == 1){
//            [action setValue:[UIColor greenColor] forKey:@"titleTextColor"];
//        }
//        [alert addAction:action];
//    }
//    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"取消"
//                                                        style:UIAlertActionStyleCancel
//                                                      handler:^(UIAlertAction * _Nonnull action) {
//        
//    }];
//    
//    [alert addAction:okAction];
//    [self presentViewController:alert animated:YES completion:^{
//            
//    }];
//}
//
@end
